package com.shrct.businessprocess.purchase;

import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.purchase.RCBasePurchaseRequest;
import com.shrct.businessprocess.purchase.impl.RCPurchaseRequestProcessImpl;
import com.shrct.businessprocess.purchase.proxy.RCPurchaseRequestProcessProxy;
import edu.fudan.langlab.domain.workflow.BusinessProcess;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = RCPurchaseRequestProcessImpl.class)
public interface RCPurchaseRequestProcess extends BusinessProcess {
  public abstract void start(final RCBasePurchaseRequest purchaseRequest);
  
  public abstract void SaleModify_modified(final String comment);
  
  public abstract void SaleModify_cancel(final String comment);
  
  public abstract void SaleManagerAudit_reject(final String comment);
  
  public abstract void SaleManagerAudit_agree(final String comment);
  
  public abstract void CEOAudit_reject(final String comment);
  
  public abstract void CEOAudit_agree(final String comment);
  
  public abstract RCBasePurchaseRequest getPurchaseRequest();
  
  public abstract RCPurchaseRequestProcess setPurchaseRequest(final RCBasePurchaseRequest purchaseRequest);
  
  public abstract RCEmployee getStarter();
  
  public abstract RCPurchaseRequestProcess setStarter(final RCEmployee starter);
  
  public abstract RCPurchaseRequestProcessProxy toProxy();
}
